package com.br.dao;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import com.br.model.Jogador;

public class JogadorDao {
	
	private static Map<String, Jogador> jogadores = new HashMap<String, Jogador>();
	
	public void add(final Jogador j) {
		synchronized (jogadores) {
			j.setUid(UUID.randomUUID().toString());
			jogadores.put(j.getUid(), j);
		}
	}

	public final List<Jogador> list() {
		synchronized (jogadores) {
			List<Jogador> retorno = new ArrayList<Jogador>();
			retorno.addAll(jogadores.values());
			return retorno;
		}
	}
	
	public final Jogador get(final String uid) {
		synchronized (jogadores) {
			return jogadores.get(uid);
		}
	}
	
	public final Jogador getByEmail(final String email) {
		synchronized (jogadores) {
			List<Jogador> js = list();
			
			for (int i = 0; i < js.size(); i++) {
				Jogador j = js.get(i);
				if(j.getEmail().equals(email)){
					return j;
				}
			}
			
			return null;
		}
	}

	public final Jogador remove(final String uid) {
		synchronized (jogadores) {
			return jogadores.remove(uid);
		}
	}


}
